import { DNode } from "../LinkedList/doubleLinkedLinkedList";

export type IQueueIterator<E> = (ele: E, i: number) => void; 
export type IDQueueIterator<E> = (node: DNode<E>, i: number) => void; 
/**
 * 队列
 */
export interface IQueue<E> {
    size(): number // 队列中元素的数量
    isEmpty(): boolean // 队列是否为空
    clear(): void // 清空栈
    enQueue(element: E): void // 入队
    deQueue(): E | undefined // 出队
    front(): E | undefined // 取出对头元素  
    forEach(cb: IQueueIterator<E> | IDQueueIterator<E>): void // 遍历队列
}



